<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:p="http://primefaces.org/ui" 
      >
      
 	<h:head><title> Carrinho de compras WEB</title>   </h:head>
	<h:body>
	<ui:composition template="/pages/template.xhtml">
		<ui:define name="conteudo">
		<f:view beforePhase="#{authorizationListener.userPhase}" >
			<p:accordionPanel> 
				 <p:tab title="Alterar Dados"> 
				 <h:form>
				 	<p:messages id="messagesAlterarDados" />
				 	<h:panelGrid columns="3" id="alterarDados">
						<p:outputLabel value="Nome" for="nome" />
						<p:inputText value="#{usuarioBean.usuario.nome}" id="nome"
							required="true" requiredMessage="Nome Obrigatorio">
						</p:inputText>
						<h:outputText>&nbsp;</h:outputText>

						<p:outputLabel value="Sobrenome" for="sobrenome" />
						<p:inputText value="#{usuarioBean.usuario.sobreNome}"
							id="sobrenome" required="true"
							requiredMessage="Sobrenome Obrigatorio">
						</p:inputText>
						<h:outputText>&nbsp;</h:outputText>

						<p:outputLabel value="CPF" for="cpf" />
						<p:inputMask mask="999.999.999-99"
							value="#{usuarioBean.usuario.cpf}" id="cpf" 
							converterMessage="CPF inválido." maxlength="14">
							<f:converter converterId="cpfConverter" />
						</p:inputMask>
						<h:outputText>&nbsp;</h:outputText>

						<p:outputLabel value="Email" for="email" />
						<p:inputText value="#{usuarioBean.usuario.email}" id="email"
							required="true" requiredMessage="O campo email é obrigatório.">
							<f:ajax render="email_valido"
								listener="#{usuarioBean.buscarEmail}"></f:ajax>
						</p:inputText>
						<h:outputText value="#{usuarioBean.emailValido}" id="email_valido"></h:outputText>

						<p:outputLabel value="Sexo" for="sexo"/>
						<h:selectOneRadio value="#{usuarioBean.usuario.sexo}" id="sexo">
							<f:selectItem itemLabel="Masculino" itemValue="M" id="sexoM"/>
							<f:selectItem itemLabel="Feminino" itemValue="F" id="sexoF"/>
						</h:selectOneRadio>
						<h:outputText>&nbsp;</h:outputText>

						<p:outputLabel value="Data de Nascimento" for="dataNascimento" />
						<p:inputMask mask="99/99/9999" id="dataNascimento"
							value="#{usuarioBean.usuario.dataNascimento}">
							<f:convertDateTime pattern="dd/MM/yyyy" />
							<f:validator validatorId="nascimentoValidator"></f:validator>
						</p:inputMask>
						<h:outputText>&nbsp;</h:outputText>
					</h:panelGrid>
						<p:commandButton  value="Alterar" update="@form :form_menu_topo messagesAlterarDados"
							actionListener="#{usuarioBean.alterarDados}">
						</p:commandButton>
					</h:form>
				 </p:tab>
				 <p:tab title="Alterar Senha">
				 	<h:form id="form_senha">
				 		<p:messages id="messages_alterarSenha"/>
					 	<h:panelGrid columns="2" width="280px">
						 	<p:outputLabel for="senhaAntiga" value="Digite a senha Antiga:"/>
							<p:password value="#{usuarioBean.senhaAntiga}"
								id="senhaAntiga"
								requiredMessage="Preencha o campo Confirmação senha"
								required="true">
							</p:password>

							<p:outputLabel for="senhaNova" value="Digite a nova senha:"/>
							<p:password value="#{usuarioBean.usuario.senha}" feedback="true"
								id="senhaNova" requiredMessage="Preencha o campo senha nova:"
								required="true" promptLabel="Preencha o campo Senha"
								weakLabel="Senha Fraca" goodLabel="Senha media"
								strongLabel=" Senha Forte"
								validatorMessage="Sua senha nova deve ter no minimo 8 digitos!">
								<f:validateLength minimum="8"></f:validateLength>
							</p:password>
							
							<p:outputLabel for="confirmarSenha" value="Confirme a senha nova:"/>
							<p:password value="#{usuarioBean.confirmarSenha}" feedback="true"
								id="confirmarSenha" requiredMessage="Preencha o campo confirmar senha nova:"
								required="true" promptLabel="Preencha o campo Senha"
								weakLabel="Senha Fraca" goodLabel="Senha media"
								strongLabel=" Senha Forte">
							</p:password>
						</h:panelGrid>
						
						<p:commandButton value="Alterar"
							update="@form form_senha :form_menu_topo "
							actionListener="#{usuarioBean.alterarSenha}">
						</p:commandButton>
						
					</h:form>
				</p:tab>

				<p:tab title="Alterar Endereço">
					<h:form id="form_endereco">
						<p:panel header="Alterar Endereço:"
							id="panel_end">
							<p:messages id="messages_endereco"/>
							<h:panelGrid columns="3" id="panel_endereco">
								
								<p:outputLabel value="CEP:" for="cep" />
								<p:inputMask value="#{usuarioBean.usuario.endereco.cep}"
									mask="99999-999" id="cep" required="true"
									requiredMessage="CEP Obrigatorio!">
								</p:inputMask>
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Estado:" for="estado" />
								<p:inputText value="#{usuarioBean.usuario.endereco.estado}"
									id="estado" required="true" requiredMessage="Informe o Estado!"></p:inputText>
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Cidade:" for="cidade" />
								<p:inputText value="#{usuarioBean.usuario.endereco.cidade}"
									required="true" requiredMessage="Informe a cidade!" id="cidade">
								</p:inputText>
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Logradouro:" for="logradouro" />
								<p:inputText value="#{usuarioBean.usuario.endereco.logradouro}"
									required="true" id="logradouro"
									requiredMessage="Informe o endereco!"/>
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Bairro:" for="bairro" />
								<p:inputText value="#{usuarioBean.usuario.endereco.bairro}"
									id="bairro" required="true"
									requiredMessage="Obrigatorio informar o Bairro!">
								</p:inputText>
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Numero:" for="numero" />
								<p:inputText value="#{usuarioBean.usuario.numero}"
									id="numero" required="true"
									requiredMessage="Numero Obrigatorio!" />
								<h:outputText>&nbsp;</h:outputText>

								<p:outputLabel value="Complemento:" for="complemento" />
								<p:inputText value="#{usuarioBean.usuario.complemento}"
									id="complemento" required="true"
									requiredMessage="Informe o tipo de complemento!"></p:inputText>
								<h:outputText>&nbsp;</h:outputText>
								<p:commandButton value="Alterar"
									update="@form messages_endereco :form_menu_topo "
									actionListener="#{usuarioBean.alterarEndereco}">
								</p:commandButton>
							</h:panelGrid>
						</p:panel>
					</h:form>
				</p:tab>
			</p:accordionPanel>  
		</f:view>
		</ui:define>
	</ui:composition>
</h:body>
</html>